Systemübergreifende Ordnerstruktur

12.06.2015

Ab sofort werde ich wie folgt vorgehen:

Dadurch wird eine weitere Anpassung der Rechte überflüssig.

28.03.2010

Heute hatte ich die Idee, da ich hin und wieder zwischen verschiedenen Distributionen hin und herswitche, ein Ordnersystem unabhängig vom Benutzerkonto einzurichten.

Dafür habe ich unter /home die Ordner:

  • Dokumente
  • Downloads
  • Bilder
  • Musik
  • .opera
  • .VirtualBox
  • angelegt und mit den entsprechenden vorhandenen Daten gefüllt.

    Diese Ordner habe ich dann im Home-Verzeichnis gelöscht, um dann Links auf meine unter /home erstellten Ordner einzurichten.

    cd ~
    ln -s /home/Dokumente/ Dokumente
    ln -s /home/Dokumente/ Dokumente
    ln -s /home/Downloads/ Downloads
    ln -s /home/Bilder/ Bilder
    ln -s /home/Musik/ Musik
    ln -s /home/.opera .opera
    ln -s /home/.VirtualBox/ .VirtualBox

    Wenn dies also in den verschiedenen Home-Verzeichnissen so passiert, so zeigen alle Ordner dieser Home-Verzeichnisse jeweils auf die gleichen Ordner unter /home, was die gemeinsame Nutzung dieser Ordner erleichtert.

    Allerdings stellt die Rechteverwaltung unter Linux eine kleine Hürde dar. So kann zwar grundsätzlich jeder Nutzer die Dateien einfach lesend öffnen, aber eben per Standard in der Regel nur der erstellende Benutzer Änderungen an den Dateien vornehmen.

    Dieses Verhalten möchte ich wie folgt umgehen:

    1. Sämtliche vorhandene Dateien der Gruppe users zuordnen:

    sudo chgrp -Rv users Ordner

    Als Ordner werden meine erstellten Ordner nacheinander mit dem Befehl bearbeitet. Dadurch sind alle vorhandenen Dateien und Ordner jeweils der Gruppe users zugeordnet.

    Neue Dateien werden aber immer der Hauptgruppe zugeordnet. Diese trägt in der Regel den selben Namen wie der Nutzer, soll aber in unserem Fall jeweils user sein.

    2. Als Hauptgruppe die Gruppe user festlegen.

    Damit also Dateien die neu angelegt werden ebenfalls der Gruppe users zugeordnet werden, muß die Hauptgruppe des jeweiligen Benutzers auf users umgestellt werden. Dies erreicht man durch den Befehl:

    sudo usermod -g users NUTZERNAME

    wobei natürlich NUTZERNAME durch den jeweiligen Nutzername zu ersetzen ist. Damit ist nun und für die Zukunft gewärleistet, das alle Dateien und Verzeichnisse die für die Gemeinsame Nutzung gedacht sind, der Gruppe users zugeordnet sind.

    Allerdings muss der Nutzer selbst auch noch dieser Gruppe zugeordnet werden, damit er auch Dateien anderer Nutzer bearbeiten kann.

    3. Dem Nutzer die Gruppe user zuweisen

    Unser Nutzer stellt derzeit seine Dateien der Gruppe users zur Verfügung. Damit er auch selbst die Dateien anderer Nutzer dieser Gruppe ändern kann, muß er noch selbst Mitglied dieser Gruppe werden.
    Dies geschieht durch:

    usermod -a -G users NUTZERNAME

    Wobei auch hier wieder NUTZERNAME durch den entsprechenden Nutzernamen zu ersetzen ist.

    Nun müssen die Rechte noch so angepasst werden, dass alle Nutzer die zur Gruppe user gehören, auch diese Dateien ändern können.

    4. Rechte der vorhandenen Dateien anpassen

    Noch können die Mitglieder der Gruppe users die Dateien nicht ändern. Damit Sie das können müssen die Dateirechte entsprechend angepasst werden.
    Dies kann man rekursiv für den Ordner und alle im Ordner befindlichen Dateien und Verzeichnisse mit folgenden Befehl umsetzen:

    sudo chmod -Rv g+rw ORDNER

    wobei hier für ORDNER der jeweilige Ordnernamen einzusetzen ist.

    Nun müssen noch die Standardeinstellungen für die Rechte-Vergabe bein neu erstellten Dateien abgeändert werden, damit auch diese die selben Rechte erhalten.

    5. Standardeinstellung für die Rechtevergabe anpassen

    Unsere derzeit vorhandenen Dateien lassen sich nun durch alle Nutzer der Gruppe users bearbeiten. Erstellen wir aber eine neue Datei, so wird diese per Standard nur mit Leserechten für unsere Gruppe users versehen. Damit man also nicht die Zugriffsrechte jeder neu erstellten Datei wieder anpassen muss, gilt es dieses Standardverhalten unseren Bedürfnissen anzupassen.

    Dazu muss die Datei /etc/login.defs mit Rootrechten geöffnet werden:

    sudo nano /etc/login.defs

    Hier ändert man den Eintrag :

    umask 022 auf
    umask 002 ab
    und speichert die Datei.

    Nun werden alle neuen Dateien mit den Rechten -rw-rw-r-- angelegt und können folglich von nun an von allen Nutzern der Gruppe user gelesen und bearbeitet werden.